<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			// 函数dunction 函数也是一个对象
			// 函数中可以封装一些功能(代码),在需要时可以执行这些功能(代码)
			// 函数中可以保存一些代码在需要的时候调用
			// 使用typeof检测一个函数对象时,会返回function
			
			// 我们在实际开发中很少使用构造函数来创建一个函数对象
			// 创建一个函数对象
			// 可以将要封装的代码以字符串的形式传递给构造函数
			var fun = new Function("console.log('Hello 这是我的第一个函数')");
			console.log(typeof fun)
			console.log(fun)
					
			// 封装到函数中的代码不会立即执行
			// 函数中的代码会在函数调用的时候执行
			// 调用函数语法,函数对象()
			// 当调用函数时,函数中封装的代码会按照顺序执行
			fun();
			fun();
			fun();
			
			// 使用函数声明来创建一个函数
			// 语法: function 函数名([形参1,形参2...形参N]){
			// 		 语句...
			//       }
			
			function fun2(){
				console.log("这是我的第二个函数~~~");
				alert("哈哈哈哈哈");
				document.write("O(∩_∩)O哈哈~");
			}
			
			// console.log(fun2);
			// 调用fun2
			fun2();
			
			// 使用函数表达式来创建一个函数
			// var 函数名 = function([形参1,形参2...形参N]){
			// 	语句...
			// }
			
			var fun3 = function(){
				console.log("我是匿名函数中封装的代码");
			}
			
			fun3();
						
		</script>
	</head>
	<body>
	</body>
</html>
